package dict;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

public class TransactionDict {
	
	//错误类型
	public static final Map<String, String> MESSAGES = Collections.synchronizedMap(new HashMap<String, String>());
	
	public final static String TRANSACTION_SUCCESS= "0000";
	public final static String TRANSACTION_FAILURE= "9999";
	
	public final static String SYSTEM_SUSPEND= "S001";
	public final static String ILLAGEL_ACCESS= "S002";
	public final static String TEST_SUCCESS= "S003";
	public final static String VERSION_ERROR= "S004";
	public final static String REPEAT_SUBMIT= "S005";
	public final static String DUPLICATE_PAYMENT= "S006";
	public final static String GBPP_EXCEPTION= "S007";
	public final static String BRAM_EXCEPTION= "S008";
	public final static String GLOBAL_IP_EXCEPTION= "S009";
	public final static String GLOBAL_CARD_EXCEPTION= "S010";
	public final static String GLOBAL_EMAIL_EXCEPTION= "S011";
	public final static String ARGS_EMPTY= "S012";
	public final static String ARGS_LENGTH= "S013";
	public final static String ARGS_NUMBER= "S014";
	public final static String ARGS_EXCEED= "S015";
	public final static String ARGS_FORMAT= "S016";
	
	public final static String TRANSACTION_NOT_EXIST= "T001";
	public final static String TRANSACTION_FETCH_EXCEPTION= "T002";
	public final static String TRANSACTION_STATUS_EXCEPTION= "T003";
	public final static String TRANSACTION_PERSIST_EXCEPTION= "T004";
	public final static String AGENCY_CONFIGURATION_EXCEPTION= "T101";
	public final static String AGENCY_FETCH_EXCEPTION= "T102";
	public final static String AGENCY_CLOSED= "T103";
	public final static String AGENCY_PERSIST_EXCEPTION= "T104";
	public final static String SUBJECT_NOT_EXIST= "T201";
	public final static String SUBJECT_FETCH_EXCEPTION= "T202";
	public final static String SUBJECT_STATUS_EXCEPTION= "T203";
	public final static String SUBJECT_PERSIST_EXCEPTION= "T204";
	public final static String MERCHANT_NOT_EXIST= "T301";
	public final static String MERCHANT_FETCH_EXCEPTION= "T302";
	public final static String MERCHANT_STATUS_EXCEPTION= "T303";
	public final static String MERCHANT_PERSIST_EXCEPTION= "T304";
	public final static String CARD_NOT_EXIST= "T401";
	public final static String CARD_FETCH_EXCEPTION= "T402";
	public final static String CARD_STATUS_EXCEPTION= "T403";
	public final static String CARD_PERSIST_EXCEPTION= "T404";
	public final static String CARD_NUMBER_FORMAT_ERROR= "T405";
	public final static String CARD_EXPIRE_FORMAT_ERROR= "T406";
	public final static String CARD_CVV_FORMAT_ERROR= "T407";
	public final static String CARD_NOT_ACCEPT= "T408";
	public final static String CARD_TRANSFER_EXCEPTION= "T409";
	public final static String WEBSITE_NOT_EXIST= "T501";
	public final static String WEBSITE_FETCH_EXCEPTION= "T502";
	public final static String WEBSITE_FORBIDDEN= "T503";
	public final static String WEBSITE_PERSIST_EXCEPTION= "T504";
	public final static String LOGIC_NOT_EXIST= "T601";
	public final static String LOGIC_FETCH_EXCEPTION= "T602";
	public final static String LOGIC_STATUS_EXCEPTION= "T603";
	public final static String LOGIC_PERSIST_EXCEPTION= "T604";

	public final static String CURRENCY_FETCH_EXCEPTION= "E001";
	public final static String NO_SUPPORT_CURRENCY= "E002";
	public final static String SIGNATURE_INCORRECT= "E003";
	public final static String COUNTRY_INCORRECT= "E004";
	public final static String EMAIL_INCORRECT= "E005";
	public final static String AMOUNT_EXCEEDED= "E006";
	public final static String TOTAL_TIMES_LIMIT= "E007";
	public final static String TOTAL_AMOUNT_LIMIT= "E008";
	public final static String INFORMATION_DECRYPT_ERROR= "E009";
	public final static String PART_REFUND_NOT_ACCEPT= "E010";
	public final static String CALCULATE_EXCEPTION= "E011";
	public final static String REFUND_AMOUNT_GREATER_THAN_REMAINING= "E012";
	public final static String TRANSACTION_EXCEED_THE_TIME_LIMIT_FOR_RESUBMIT= "E013";
	public final static String REFUSE_AMOUNT_GREATER_THAN_SALES_AMOUNT= "E014";
	public final static String REFUSE_AMOUNT_GREATER_THAN_REMAINING= "E015";
	public final static String NO_REMAINING= "E016";
	public final static String LOGIC_COMPANY_INCORRECT= "E017";
	public final static String LOGIC_NUMBER_INCORRECT= "E018";
	public final static String BALANCE_FETCH_EXCEPTION= "E019";
	public final static String SETTLE_FETCH_EXCEPTION= "E020";
	public final static String BALANCE_LESS_THAN_RISK_AMOUNT= "E021";
	public final static String BALANCE_NOT_ENOUGH= "E022";
	public final static String AMOUNT_EXCEEDED_MERCHANT_LIMIT= "E023";
	public final static String SETTLE_INTERVAL_LESS_THAN_MERCHANT_FREQUENCY= "E024";
	
	
	public final static String UNITY_TYPE_ERROR= "E090";
	public final static String UNITY_BANK_ERROR= "E091";
	public final static String UNITY_AMOUNT_ERROR= "E092";
	
	public final static String CS_NOT_EXIST= "P001";
	public final static String CS_FETCH_EXCEPTION= "P002";
	public final static String CS_STATUS_EXCEPTION= "P003";
	public final static String CS_PERSIST_EXCEPTION= "P004";
	public final static String SC_NOT_EXIST= "P101";
	public final static String SC_FETCH_EXCEPTION= "P102";
	public final static String SC_STATUS_EXCEPTION= "P103";
	public final static String SC_PERSIST_EXCEPTION= "P104";
	public final static String SM_NOT_EXIST= "P201";
	public final static String SM_FETCH_EXCEPTION= "P202";
	public final static String SM_STATUS_EXCEPTION= "P203";
	public final static String SM_PERSIST_EXCEPTION= "P204";
	public final static String MS_NOT_EXIST= "P301";
	public final static String MS_FETCH_EXCEPTION= "P302";
	public final static String MS_STATUS_EXCEPTION= "P303";
	public final static String MS_PERSIST_EXCEPTION= "P304";
	
	public final static String RISK_BLACK_IP= "V001";
	public final static String RISK_BLACK_BIN= "V002";
	public final static String RISK_BLACK_CARD= "V003";
	public final static String RISK_BLACK_COUNTRY= "V004";
	public final static String RISK_BLACK_EMAIL= "V005";
	public final static String RISK_BLACK_FINGER= "V006";
	public final static String RISK_BLACK_STATE= "V007";
	public final static String RISK_BLACK_ADDR= "V008";
	public final static String RISK_BLACK_WEBSITE= "V009";
	public final static String RISK_BLACK_NAME= "V010";
	public final static String RISK_BLACK_PHONE= "V011";
	
	public final static String RISK_CARD_BIN= "K001";
	public final static String RISK_CARD_CCOUNTRY= "K002";
	public final static String RISK_CARD_HCOUNTRY= "K003";
	public final static String RISK_BIN_CCOUNTRY= "K004";
	public final static String RISK_BIN_HCOUNTRY= "K005";
	public final static String RISK_CCOUNTRY_HCOUNTRY= "K006";

	static {
		MESSAGES.put(TRANSACTION_SUCCESS, "Transaction Successful");
		MESSAGES.put(TRANSACTION_FAILURE, "Transaction Failure");
		MESSAGES.put(SYSTEM_SUSPEND, "system suspend");
		MESSAGES.put(ILLAGEL_ACCESS, "illagel access");
		MESSAGES.put(VERSION_ERROR, "version error");
		MESSAGES.put(REPEAT_SUBMIT, "dont resubmit");
		MESSAGES.put(DUPLICATE_PAYMENT, "duplicate payment");
		MESSAGES.put(GBPP_EXCEPTION, "high risk");
		MESSAGES.put(BRAM_EXCEPTION, "high risk");
		MESSAGES.put(GLOBAL_IP_EXCEPTION, "high risk");
		MESSAGES.put(GLOBAL_CARD_EXCEPTION, "high risk");
		MESSAGES.put(GLOBAL_EMAIL_EXCEPTION, "high risk");
		MESSAGES.put(ARGS_EMPTY, "parameter value is empty");
		MESSAGES.put(ARGS_LENGTH, "parameter length incorrect");
		MESSAGES.put(ARGS_NUMBER, "parameter not numeric");
		MESSAGES.put(ARGS_EXCEED, "parameter value boundary exceeded");
		MESSAGES.put(ARGS_FORMAT, "parameter format error");
		
		MESSAGES.put(TRANSACTION_NOT_EXIST, "transaction not exist");
		MESSAGES.put(TRANSACTION_FETCH_EXCEPTION, "transaction fetch exception");
		MESSAGES.put(TRANSACTION_STATUS_EXCEPTION, "transaction status exception");
		MESSAGES.put(TRANSACTION_PERSIST_EXCEPTION, "transaction persist exception");
		MESSAGES.put(AGENCY_CONFIGURATION_EXCEPTION, "agency configuration exception");
		MESSAGES.put(AGENCY_FETCH_EXCEPTION, "agency fetch exception");
		MESSAGES.put(AGENCY_CLOSED, "agency closed");
		MESSAGES.put(AGENCY_PERSIST_EXCEPTION, "agency persist exception");
		MESSAGES.put(SUBJECT_NOT_EXIST, "subject not exist");
		MESSAGES.put(SUBJECT_FETCH_EXCEPTION, "subject fetch exception");
		MESSAGES.put(SUBJECT_STATUS_EXCEPTION, "subject status exception");
		MESSAGES.put(SUBJECT_PERSIST_EXCEPTION, "subject persist exception");
		MESSAGES.put(MERCHANT_NOT_EXIST, "merchant not exist");
		MESSAGES.put(MERCHANT_FETCH_EXCEPTION, "merchant fetch exception");
		MESSAGES.put(MERCHANT_STATUS_EXCEPTION, "merchant status exception");
		MESSAGES.put(MERCHANT_PERSIST_EXCEPTION, "merchant persist exception");
		MESSAGES.put(CARD_NOT_EXIST, "card not exist");
		MESSAGES.put(CARD_FETCH_EXCEPTION, "card fetch exception");
		MESSAGES.put(CARD_STATUS_EXCEPTION, "card status exception");
		MESSAGES.put(CARD_PERSIST_EXCEPTION, "card persist exception");
		MESSAGES.put(CARD_NUMBER_FORMAT_ERROR, "card number improperly formatted");
		MESSAGES.put(CARD_EXPIRE_FORMAT_ERROR, "card expire improperly formatted");
		MESSAGES.put(CARD_CVV_FORMAT_ERROR, "card cvv improperly formatted");
		MESSAGES.put(CARD_NOT_ACCEPT, "card type not accept");
		MESSAGES.put(CARD_TRANSFER_EXCEPTION, "card infomation transfer exception");
		MESSAGES.put(WEBSITE_NOT_EXIST, "website not exist");
		MESSAGES.put(WEBSITE_FETCH_EXCEPTION, "website fetch exception");
		MESSAGES.put(WEBSITE_FORBIDDEN, "website forbiddened");
		MESSAGES.put(WEBSITE_PERSIST_EXCEPTION, "website persist exception");
		MESSAGES.put(LOGIC_NOT_EXIST, "logic not exist");
		MESSAGES.put(LOGIC_FETCH_EXCEPTION, "logic fetch exception");
		MESSAGES.put(LOGIC_STATUS_EXCEPTION, "logic status exception");
		MESSAGES.put(LOGIC_PERSIST_EXCEPTION, "logic persist exception");

		MESSAGES.put(CURRENCY_FETCH_EXCEPTION, "currency fetch exception");
		MESSAGES.put(NO_SUPPORT_CURRENCY, "currency not support");
		MESSAGES.put(SIGNATURE_INCORRECT, "signature incorrect");
		MESSAGES.put(COUNTRY_INCORRECT, "country code incorrect");
		MESSAGES.put(EMAIL_INCORRECT, "email incorrect");
		MESSAGES.put(AMOUNT_EXCEEDED, "amount exceeded");
		MESSAGES.put(TOTAL_TIMES_LIMIT, "overlimit of transaction times ");
		MESSAGES.put(TOTAL_AMOUNT_LIMIT, "overlimit of transaction total amount ");
		MESSAGES.put(PART_REFUND_NOT_ACCEPT, "part_refund_not_accept");
		MESSAGES.put(CALCULATE_EXCEPTION, "calculate exception");
		MESSAGES.put(REFUND_AMOUNT_GREATER_THAN_REMAINING, "the amount of refunds is greater than the balance ");
		MESSAGES.put(INFORMATION_DECRYPT_ERROR, "information decrypt error");
		MESSAGES.put(TRANSACTION_EXCEED_THE_TIME_LIMIT_FOR_RESUBMIT, "transaction exceed the time limit for resubmit");
		MESSAGES.put(REFUSE_AMOUNT_GREATER_THAN_SALES_AMOUNT, "the amount of refuse is greater than the amount of sales");
		MESSAGES.put(REFUSE_AMOUNT_GREATER_THAN_REMAINING, "the amount of refuse is greater than the balance ");
		MESSAGES.put(NO_REMAINING, "no remaining");
		MESSAGES.put(LOGIC_COMPANY_INCORRECT, "no support company");
		MESSAGES.put(LOGIC_NUMBER_INCORRECT, "logistics number format exception");
		MESSAGES.put(BALANCE_FETCH_EXCEPTION, "balance fetch exception");
		MESSAGES.put(SETTLE_FETCH_EXCEPTION, "settle fetch exception");
		MESSAGES.put(BALANCE_LESS_THAN_RISK_AMOUNT, "balance less than risk amount");
		MESSAGES.put(BALANCE_NOT_ENOUGH, "balance not enough");
		MESSAGES.put(AMOUNT_EXCEEDED_MERCHANT_LIMIT, "settle amount exceeded merchant limit");
		MESSAGES.put(SETTLE_INTERVAL_LESS_THAN_MERCHANT_FREQUENCY, "settle interval less than merchant frequency");
		
		
		
		MESSAGES.put(UNITY_TYPE_ERROR, "unity type error");
		MESSAGES.put(UNITY_BANK_ERROR, "unity bank error");
		MESSAGES.put(UNITY_AMOUNT_ERROR, "unity amount error");
		
		MESSAGES.put(CS_NOT_EXIST, "cs not exist");
		MESSAGES.put(CS_FETCH_EXCEPTION, "cs fetch exception");
		MESSAGES.put(CS_STATUS_EXCEPTION, "cs status exception");
		MESSAGES.put(CS_PERSIST_EXCEPTION, "cs persist exception");
		MESSAGES.put(SC_NOT_EXIST, "sc not exist");
		MESSAGES.put(SC_FETCH_EXCEPTION, "sc fetch exception");
		MESSAGES.put(SC_STATUS_EXCEPTION, "sc status exception");
		MESSAGES.put(SC_PERSIST_EXCEPTION, "sc persist exception");
		MESSAGES.put(SM_NOT_EXIST, "sm not exist");
		MESSAGES.put(SM_FETCH_EXCEPTION, "sm fetch exception");
		MESSAGES.put(SM_STATUS_EXCEPTION, "sm status exception");
		MESSAGES.put(SM_PERSIST_EXCEPTION, "sm persist exception");
		MESSAGES.put(MS_NOT_EXIST, "ms not exist");
		MESSAGES.put(MS_FETCH_EXCEPTION, "ms fetch exception");
		MESSAGES.put(MS_STATUS_EXCEPTION, "ms status exception");
		MESSAGES.put(MS_PERSIST_EXCEPTION, "ms persist exception");
		
		MESSAGES.put(RISK_BLACK_IP, "high risk");
		MESSAGES.put(RISK_BLACK_BIN, "high risk");
		MESSAGES.put(RISK_BLACK_CARD, "high risk");
		MESSAGES.put(RISK_BLACK_COUNTRY, "high risk");
		MESSAGES.put(RISK_BLACK_EMAIL, "high risk");
		MESSAGES.put(RISK_BLACK_FINGER, "high risk");
		MESSAGES.put(RISK_BLACK_STATE, "high risk");
		MESSAGES.put(RISK_BLACK_ADDR, "high risk");
		MESSAGES.put(RISK_BLACK_WEBSITE, "high risk");
		MESSAGES.put(RISK_BLACK_NAME, "high risk");
		MESSAGES.put(RISK_BLACK_PHONE, "high risk");
		
		MESSAGES.put(RISK_CARD_BIN, "high risk");
		MESSAGES.put(RISK_CARD_CCOUNTRY, "high risk");
		MESSAGES.put(RISK_CARD_HCOUNTRY, "high risk");
		MESSAGES.put(RISK_BIN_CCOUNTRY, "high risk");
		MESSAGES.put(RISK_BIN_HCOUNTRY, "high risk");
		MESSAGES.put(RISK_CCOUNTRY_HCOUNTRY, "high risk");
		
	}


}
